c7838816d2315015e25ac5a21bd7b64e52e39507,src/main/java/com/forweaver/filter/GitFilter.java,GitFilter,doFilter,#ServletRequest#ServletResponse#FilterChain#,41
Before Change
gitUtil.Init(repo);
List<String> beforeBranchList = gitUtil.getBranchList();
if (pass.getPermission() == 1) { // 강� 개설�� 경우
filterchain.doFilter(req, res);
if (repo.getCategory() == 1) {
gitUtil.createStudentBranch(beforeBranchList, lectureService.get(lectureName));
}
return;
} else if (pass.getPermission() == 0) {
// 강� 수강�� 경우
if (repo.getCategory() == 0) { // ì˜ˆì œ ì €ìž¥ì†Œì?˜ 경우
gitUtil.notWriteBranches();
filterchain.doFilter(req, res);
gitUtil.writeBranches();
} else{ // ìˆ™ì œ ì €ìž¥ì†Œì?˜ 경우
if(repo.getDDay() == -1) // 마��� 지났� 못올림.
{
return;
}
gitUtil.hideNotUserBranches(weaver.getId());
gitUtil.checkOutBranch(weaver.getId());
filterchain.doFilter(req, res);
gitUtil.showBranches();
gitUtil.checkOutMasterBranch();
After Change
Pass pass = weaver.getPass(lectureName + "/" + repoName);
Project project = projectService.get(lectureName + "/" + repoName);
if(project == null){ // 프로ì ?트가 ì—†ì?„ 때
((HttpServletResponse) res).sendError(500);
return;
}
if(project.getCategory()<=0){ // 프로ì ?트가 공개 프로ì ?트ì?¼ë•Œ
if(pass == null && requestUrl.endsWith("/git-receive-pack")){ //권한 없는 사람ì?´ ì˜¬ë¦´ë ¤ê³ í• ë•Œ
((HttpServletResponse) res).sendError(403);
return;
}
filterchain.doFilter(req, res);
return;
}
if(project.getCategory()>0 && pass != null){ // 프로ì ?트가 비공개ì?´ê³ 권한ì?´ 있ì?„ 때
filterchain.doFilter(req, res);
return;
}
if(project.getCategory() == 3 &&
weaver.getPass("ROLE_PROF") != null &&
!requestUrl.endsWith("/git-receive-pack")){ // 프로ì ?트가 ê³¼ì œ 프로ì ?트ì?¸ë?° 회ì›?ì?´ êµ?수 권한ì?¼ 때 ì?½ê¸°ë§Œ 가능
filterchain.doFilter(req, res);
return;
}